home *** CD-ROM | disk | FTP | other *** search
/ Holt Researcher: American History / Holt Researcher: American History.iso / pc / modules / dbtable.dxr / 00046_PP Table parent.ls < prev    next >
Encoding:
Text File  |  2000-01-18  |  2.9 KB  |  102 lines

  1. property pMember, pDataFile, pFormatFile, pCols, pCWidthList, pColLinkList, pRows, pLineHeigth, pRowHeightList, pFontSize
  2.  
  3. on new me, xMember, DataFile, FormatFile
  4.   pMember = xMember
  5.   pDataFile = DataFile
  6.   DataText = readFile(GetTextFilePath() & pDataFile)
  7.   DataText = RemoveBlankLines(DataText)
  8.   pFormatFile = FormatFile
  9.   pRows = the number of lines in DataText
  10.   pCols = LineItemCount(line 1 of DataText)
  11.   pFontSize = 12
  12.   pLineHeigth = pFontSize + 4
  13.   member(pMember).stdRowHeight = pLineHeigth
  14.   member(pMember).rowCount = pRows
  15.   member(pMember).columnCount = pCols
  16.   InitWidthList()
  17.   sizeAllCells(member(pMember), 10, pLineHeigth)
  18.   member(pMember).tableData = InitDataAndSizeList(DataText)
  19.   member(pMember).defaultMacTextFont = "helvetica"
  20.   member(pMember).defaultWinTextFont = "arial"
  21.   member(pMember).defaultHAlign = "center"
  22.   member(pMember).defaultVAlign = "center"
  23.   member(pMember).defaultTextSize = pFontSize
  24.   member(pMember).borderSize = 1
  25.   member(xMember).hCellSpacing = -1
  26.   member(xMember).vCellSpacing = -1
  27.   return me
  28. end
  29.  
  30. on InitDataAndSizeList xText
  31.   dataList = []
  32.   pRowHeightList = [:]
  33.   storeDelimiter = the itemDelimiter
  34.   the itemDelimiter = TAB
  35.   repeat with rc = 1 to pRows
  36.     LineText = line rc of xText
  37.     repeat with ItemCount = 1 to the number of items in LineText
  38.       WordText = RemoveBorderSpaces(item ItemCount of LineText)
  39.       append(dataList, ReplaceCaretwithReturn(WordText))
  40.       if WordText contains "^" then
  41.         setaProp(pRowHeightList, rc, pLineHeigth * 2)
  42.         setRowHeight(member(pMember), rc, pLineHeigth * 2)
  43.       end if
  44.       CurrentMax = length(WordText)
  45.       if CurrentMax > getAt(pCWidthList, ItemCount) then
  46.         setAt(pCWidthList, ItemCount, CurrentMax)
  47.         if CurrentMax > 20 then
  48.           setaProp(pRowHeightList, rc, pLineHeigth * (CurrentMax / 8))
  49.           setRowHeight(member(pMember), rc, pLineHeigth * (CurrentMax / 8))
  50.         end if
  51.       end if
  52.     end repeat
  53.   end repeat
  54.   the itemDelimiter = storeDelimiter
  55.   return dataList
  56. end
  57.  
  58. on ObjAllColumnWidths me
  59.   repeat with cc = 1 to pCols
  60.     width = getAt(pCWidthList, cc)
  61.     if width >= 20 then
  62.       setColumnWidth(member(pMember), cc, 5 * 20)
  63.       next repeat
  64.     end if
  65.     setColumnWidth(member(pMember), cc, 8 * width)
  66.   end repeat
  67. end
  68.  
  69. on ObjSetRowHeight me, HeightList
  70.   max = count(HeightList)
  71.   repeat with rc = 1 to max
  72.     xRow = getPropAt(HeightList, rc)
  73.     height = getaProp(HeightList, xRow)
  74.     setRowHeight(member(pMember), xRow, height)
  75.   end repeat
  76. end
  77.  
  78. on InitWidthList
  79.   pCWidthList = []
  80.   repeat with rc = 1 to pCols
  81.     append(pCWidthList, 1)
  82.   end repeat
  83. end
  84.  
  85. on GetObjColWidth me, xCol
  86.   return getAt(pCWidthList, xCol)
  87. end
  88.  
  89. on SetObjColWidth me, xCol, width
  90.   if width > getAt(pCWidthList, xCol) then
  91.     setAt(pCWidthList, xCol, width)
  92.   end if
  93. end
  94.  
  95. on GetRowHeightList me
  96.   return pRowHeightList
  97. end
  98.  
  99. on GetMemberNum me
  100.   return pMember
  101. end
  102.